package org.springblade.gold.crawler;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class GoldDataCrawler {

    /**
     * 爬取黄金数据的方法
     * @return 黄金价格数据数组
     */
    public static List<List<String>> fetchGoldPrice() {
        String url = "https://quote.fx678.com/exchange/SGE"; // 替换为实际的黄金价格网页URL
        try {
            // 使用Jsoup连接网页并获取Document对象
            Document document = Jsoup.connect(url).get();

            // 根据网页结构选择表格元素
            Element table = document.select("#SGE").first();
            if (table == null) {
                return new ArrayList<>();
            }

            // 提取表格的<tbody>部分
            Elements rows = table.select("tbody tr");
            List<List<String>> data = new ArrayList<>();
			rows.remove(0);

            // 遍历每一行<tr>
            for (Element row : rows) {
                Elements cells = row.select("td");
                List<String> rowData = new ArrayList<>();
                for (Element cell : cells) {
                    rowData.add(cell.text());
                }
                data.add(rowData);
            }

            return data;
        } catch (IOException e) {
            e.printStackTrace();
            return new ArrayList<>();
        }
    }
	/**
	 * 爬取黄金数据的方法
	 * @return 黄金价格数据数组
	 */
	public static List<List<String>> fetchInterGoldPrice() {
		String url = "https://quote.fx678.com/exchange/WGJS"; // 替换为实际的黄金价格网页URL
		try {
			// 使用Jsoup连接网页并获取Document对象
			Document document = Jsoup.connect(url).get();

			// 根据网页结构选择表格元素
			Element table = document.select("#WGJS").first();
			if (table == null) {
				return new ArrayList<>();
			}

			// 提取表格的<tbody>部分
			Elements rows = table.select("tbody tr");
			List<List<String>> data = new ArrayList<>();
			rows.remove(0);

			// 遍历每一行<tr>
			for (Element row : rows) {
				Elements cells = row.select("td");
				List<String> rowData = new ArrayList<>();
				for (Element cell : cells) {
					rowData.add(cell.text());
				}
				data.add(rowData);
			}

			return data;
		} catch (IOException e) {
			e.printStackTrace();
			return new ArrayList<>();
		}
	}


	/**
	 * 爬取黄金数据的方法
	 * @return 黄金价格数据数组
	 */
	public static List<List<String>> fetchRealGoldPrice() {
		String url = "https://quote.fx678.com/gold"; // 替换为实际的黄金价格网页URL
		try {
			// 使用Jsoup连接网页并获取Document对象
			Document document = Jsoup.connect(url).get();

			// 根据网页结构选择表格元素
			Element table = document.select(".market_tab_gold").first();
			if (table == null) {
				return new ArrayList<>();
			}

			// 提取表格的<tbody>部分
			Elements rows = table.select("tbody tr");
//			删除第一个
			rows.remove(0);
			List<List<String>> data = new ArrayList<>();

			// 遍历每一行<tr>
			for (Element row : rows) {
				Elements cells = row.select("td");
				List<String> rowData = new ArrayList<>();
				for (Element cell : cells) {
					rowData.add(cell.text());
				}
				data.add(rowData);
			}

			return data;
		} catch (IOException e) {
			e.printStackTrace();
			return new ArrayList<>();
		}
	}

    public static void main(String[] args) {
        // 测试爬虫方法
        List<List<String>> goldData = fetchGoldPrice();
        for (List<String> row : goldData) {
            System.out.println(row);
        }
    }
}
